export function chunk(array, size = 1) {
  // 检查size有效性
  if (size <= 0) return []

  // 结果数组
  const result = []

  // 遍历原数组，将其分割成块
  for (let i = 0; i < array.length; i += size) {
    // 使用slice将数组分割成指定大小的块
    result.push(array.slice(i, i + size))
  }

  // 返回结果数组
  return result
}

export function groupBy(collection, iteratee) {
  // 检查iteratee是否是函数，不是的话就认为是直接使用属性名
  const isFunction = typeof iteratee === 'function'

  // 结果对象
  const result = {}

  // 遍历集合中的每一个元素
  for (const item of collection) {
    // 获取分组键
    let key
    if (isFunction) {
      key = iteratee(item)
    } else {
      key = item[iteratee]
    }

    // 确保结果对象中有相应的分组数组，如果没有则初始化它
    if (!result[key]) {
      result[key] = []
    }

    // 将当前元素添加到相应分组的数组中
    result[key].push(item)
  }

  // 返回分组结果
  return result
}
